$(document).on("ready", inicio);

function obtenerDatosTiempo(url, localizacion) {
	$.ajax({
		async: false,
		url: url,
		dataType: "jsonp",
		success: function(parsed_json) {
			var weather  = parsed_json["forecast"]["simpleforecast"]["forecastday"]
									  ["0"]["conditions"];
			var precip   = parsed_json["forecast"]["simpleforecast"]["forecastday"]
									  ["0"]["qpf_allday"]["mm"];
			var wind     = parsed_json["forecast"]["simpleforecast"]["forecastday"]
									  ["0"]["maxwind"]["kph"];
			var humidity = parsed_json["forecast"]["simpleforecast"]["forecastday"]
									  ["0"]["maxhumidity"];
			var temp_c   = parsed_json["forecast"]["simpleforecast"]["forecastday"]
									  ["0"]["high"]["celsius"];
			var icon_url = parsed_json["forecast"]["simpleforecast"]["forecastday"]
									  ["0"]["icon_url"];

			var tiempo   = {
				"location": localizacion,
				"temp_c":   temp_c,
				"weather":  weather,
				"precip":   precip,
				"wind":     wind,
				"humidity": humidity,
				"icon_url": icon_url
			}

			actualizarTiempo(tiempo);
		}
	});
}


function actualizarTiempo(tiempo) {
	$("#ciudad").html(tiempo.location);
	$("#precip").html("Precipitaciones: <strong>" + tiempo.precip + " mm</strong>");
	$("#humedad").html("Humedad: <strong>" + tiempo.humidity + " %</strong>");
	$("#wind").html("Viento: <strong>" + tiempo.wind + " km/h</strong>");
	$("#tiempo").html(tiempo.weather);

	$("#icono").attr("src",tiempo.icon_url);

	$("#grados").html(" " + tiempo.temp_c + "º");

	$("#preweatheragent").css("display", "none");
	$("#weatheragent").css("display", "block");
}


function actualizarConGeolocation(position) {

	var key = "ef2ebf4b4d195909";
	var url = "http://api.wunderground.com/api/" +
			  key + "/geolookup/q/" +
			  position.coords.latitude + "," + 
			  position.coords.longitude + ".json";

	$.ajax({
		url: url,
		dataType: "jsonp",
		success: function(parsed_json) {
			var location = parsed_json["location"]["city"];

			var url2 = "http://api.wunderground.com/api/" +
					   key + "/forecast/lang:SP/q/Spain/" +
					   location.replace(/ /g, "_") + ".json";

			obtenerDatosTiempo(url2, location);
		}
	});
}


function inicio() {
	if (navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(actualizarConGeolocation);
	} else {
		$("#pwaloadingimg").css("display", "none");
		$("#preweatheragent p").html("Su navegador no dispone de geolocalizador")
	} 

	$("#busqueda").keypress(function(event) {
		var keycode = (event.keyCode ? event.keyCode : event.which);

		if (keycode == '13') {
			var ciudad = $("#busqueda").val();
			var key = "ef2ebf4b4d195909";
			var url = "http://api.wunderground.com/api/" + key + "/forecast/lang:SP/q/Spain/" + ciudad + ".json";

			obtenerDatosTiempo(url, ciudad);

			/* Básico para que ajax funcione en un evento */
			return false;
		}
	});


	$("#busqueda").click(function() { 
		$("#busqueda").val("");
	});
}